// pages/service/index.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        activeKey: 0,
        list: [],
        type_name: "",
        type_id: 1,
        windowHeight: '',
        heightArray: [],

        lat: "",
        lob: "",
        resourceURL: wx.api.host + '/'
    },
    //  监听 Tabbar 点击事件
    onTabItemTap(item) {
        wx.requestSubscribeMessage({
			tmplIds: ["FopxpKaCJjLArs_b0C5hHJ9WxBQGkRaF7jr7w8SbT18"],
			success: res => {
				console.log("消息订阅", res);
			},
			fail: err => {
				console.error('[GM]：', err);
			}
		})
    },
    jumpToDetail(e) {

        let {
            service_id
        } = e.currentTarget.dataset.item
        wx.navigateTo({
            url: '../../packageB/serviceDetail/index?service_id=' + service_id
        })
    },
    //获取服务列表
    getList() {
        wx.http.get(wx.api.servicelist, {
            lon: this.data.lon,
            lat: this.data.lat,
        }).then(res => {
            if (res.code == 1) {
                this.setData({
                    list: res.data,
                })
                this.getScrollTop()
            }
        })

    },
    //点击左侧导航栏选择对应服务
    onChange(e) {

        this.setData({

            type_id: this.data.list[e.detail].type_id
        })


    },
    //监听滚动 切换tab
    scrollFloor: function (e) {
        var that = this
        var {
            scrollTop,
            scrollHeight
        } = e.detail //滚动条距离顶部
        var heightArray = that.data.heightArray //滚动项距离顶部
        //计算比较得出下标
        for (let i = 0; i <= heightArray.length; i++) {
            if (scrollTop + this.data.windowHeight < scrollHeight) {
                if (scrollTop >= heightArray[i] && scrollTop < heightArray[i + 1]) {
                    this.setData({
                        activeKey: i
                    })
                }
            }else{

            }


        }

    },
    //获取元素离顶高度
    getScrollTop() {
        let that = this,
            heightArray = [];
        //1.获取滚动元素距离顶部位置-y
        setTimeout(function () {
            let query = wx.createSelectorQuery() //创建节点查询器
            query.selectAll('.type_name').boundingClientRect(function (rect) {
                rect.forEach(function (value) {
                    heightArray.push((value.top))
                })

                that.setData({
                    heightArray
                })

            }).exec()
        }, 0) //此处最好用延时，否则获取的结果有可能是null，也有可能值不准确。 
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

        wx.getSystemInfo({
            success: (res) => {
               
                this.setData({
                    windowHeight: res.windowHeight,

                })

            }
        })
    },


    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        const {
            lon,
            lat
        } = wx.getStorageSync('latlon')

        this.setData({
            lat: lat || 98,
            lon: lon || 98,
        })

        this.getList()

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})